Conversation
b92a53f to
5380870
Compare
| // commitment list to the satisfying witness polynomial list | ||
| let (comm_list, t) = PolyList::commit(&pl, &gens.gens_pc.ck); | ||
|
|
||
| let mut bytes = Vec::new(); |
There was a problem hiding this comment.
Right now this is OK but we need a more serious full Transcript trait for handling correctly and sanely all types of inputs.
| .map(|i| { | ||
| let z: Vec<Scalar> = (0..pow_m) | ||
| .into_par_iter() | ||
| .map(|j| Z[(j << m) | i]) |
There was a problem hiding this comment.
A small comments explaining we're selecting by row i and then column j would make the reader more at ease ;)
| let mut prod = Scalar::one(); | ||
| for j in 0..m { | ||
| let b_j = b[j]; | ||
| if i >> j & 1 == 1 { |
There was a problem hiding this comment.
Same here for comments please - i'm afraid of binary expressions left unexplained :D
| @@ -0,0 +1,273 @@ | |||
| use ark_bls12_377::{Bls12_377 as I, G1Affine}; | |||
There was a problem hiding this comment.
Single letter uppercase names are usually used for generics. When I read the source below, I was a bit confused where the generic I was defined. Then I found out it's a concrete type. If Bls12_377 is a too long name, then perhaps just Bls?
There was a problem hiding this comment.
Or Bls12, this is what blstrs is using as type.
There was a problem hiding this comment.
We will move this codebase to generic later on. This requires a larger effort accross the whole initial spartan codebase.
In other words, we'll have to make a "beautify and productify" pass over the whole codebase at some point.
|
Closing this and opening a PR with the full scheme and addressed comments from here (#12). |
Implemented the polynomial optimisation excluding the MIPP